<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>MixerSetLevel</title>
    <link rel="stylesheet" type="text/css" href="csound.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <link rel="home" href="index.html" title="The Canonical Csound Reference Manual" />
    <link rel="up" href="OpcodesTop.html" title="Orchestra Opcodes and Operators" />
    <link rel="prev" href="mirror.html" title="mirror" />
    <link rel="next" href="MixerSetLevel_i.html" title="MixerSetLevel_i" />
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">MixerSetLevel</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="mirror.html">Prev</a> </td>
          <th width="60%" align="center">Orchestra Opcodes and Operators</th>
          <td width="20%" align="right"> <a accesskey="n" href="MixerSetLevel_i.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="refentry">
      <a id="MixerSetLevel"></a>
      <div class="titlepage"></div>
      <a id="IndexMixerSetLevel" class="indexterm"></a>
      <div class="refnamediv">
        <h2>
          <span class="refentrytitle">MixerSetLevel</span>
        </h2>
        <p>MixerSetLevel — 
      Sets the level of a send to a buss.
    </p>
      </div>
      <div class="refsect1">
        <a id="idp125570912"></a>
        <h2>Syntax</h2>
        <pre class="synopsis"><span class="command"><strong>MixerSetLevel</strong></span> isend, ibuss, kgain</pre>
      </div>
      <div class="refsect1">
        <a id="idp125572960"></a>
        <h2>Description</h2>
        <p>Sets the level at which signals from the send are added to the buss. The actual sending of the signal to the buss 
is performed by the <a class="link" href="MixerSend.html" title="MixerSend"><em class="citetitle">MixerSend</em></a> opcode. 
    </p>
      </div>
      <div class="refsect1">
        <a id="idp125646432"></a>
        <h2>Initialization</h2>
        <p><span class="emphasis"><em>isend</em></span> -- The number of the send, for example the number of the instrument sending the signal (but any integer can be used).</p>
        <p><span class="emphasis"><em>ibuss</em></span> -- The number of the buss, for example the number of the instrument receiving the signal (but any integer can be used).</p>
        <p>Setting the gain for a buss also creates the buss.</p>
      </div>
      <div class="refsect1">
        <a id="idp125649296"></a>
        <h2>Performance</h2>
        <p><span class="emphasis"><em>kgain</em></span> -- The level (any real number) at which the signal from the send will be mixed onto the buss. The default is 0.</p>
        <p>
Use of the mixer requires that instruments setting gains have smaller numbers than instruments sending signals, 
and that instruments sending signals have smaller numbers than instruments receiving those signals. 
However, an instrument may have any number of sends or receives. After the final signal is received, 
<a class="link" href="MixerClear.html" title="MixerClear"><em class="citetitle">MixerClear</em></a> must be invoked to reset the busses before the next kperiod.
</p>
      </div>
      <div class="refsect1">
        <a id="idp125652544"></a>
        <h2>Examples</h2>
        <p>In the orchestra, define an instrument to control mixer levels:</p>
        <pre class="programlisting">
<span class="oblock">instr</span> 1
	<span class="opc">MixerSetLevel</span>		p4, p5, p6
<span class="oblock">endin</span></pre>
        <p>In the score, use that instrument to set mixer levels:</p>
        <pre class="programlisting">
<span class="comment">; SoundFonts</span>
<span class="comment">; to Chorus</span>
<span class="stamnt">i</span> 1  0  0 100  200  0.9
<span class="comment">; to Reverb</span>
<span class="stamnt">i</span> 1  0  0  100  210  0.7
<span class="comment">; to Output</span>
<span class="stamnt">i</span> 1  0  0  100  220  0.3

<span class="comment">; Kelley Harpsichord</span>
<span class="comment">; to Chorus</span>
<span class="stamnt">i</span> 1  0  0  3  200  0.30
<span class="comment">; to Reverb</span>
<span class="stamnt">i</span> 1  0  0  3  210  0.9
<span class="comment">; to Output</span>
<span class="stamnt">i</span> 1  0  0  3  220  0.1

<span class="comment">; Chorus to Reverb</span>
<span class="stamnt">i</span> 1  0  0  200  210  0.5
<span class="comment">; Chorus to Output</span>
<span class="stamnt">i</span> 1  0  0  200  220  0.5
<span class="comment">; Reverb to Output</span>
<span class="stamnt">i</span> 1  0  0  210  220  0.2</pre>
        <p>
      Here is a complete example of the MixerSetLevel opcode. It uses the file <a class="ulink" href="examples/Mixer.csd" target="_top"><em class="citetitle">Mixer.csd</em></a>
      </p>
        <div class="example">
          <a id="idp125672400"></a>
          <p class="title">
            <strong>Example 516. Complete example of the MixerSetLevel opcode.</strong>
          </p>
          <div class="example-contents">
            <pre class="programlisting">
<span class="csdtag">&lt;CsoundSynthesizer&gt;</span>
<span class="csdtag">&lt;CsOptions&gt;</span>
<span class="comment">; Select audio/midi flags here according to platform</span>
<span class="comment">; Audio out   Audio in</span>
-odac       <span class="comment">;   -iadc    ;;;RT audio out</span>
<span class="comment">; For Non-realtime ouput leave only the line below:</span>
<span class="comment">; -o Mixer.wav -W ;;; for file output any platform</span>
<span class="csdtag">&lt;/CsOptions&gt;</span>
<span class="csdtag">&lt;CsInstruments&gt;</span>

<span class="ohdr">sr</span> <span class="op">=</span> 44100
<span class="ohdr">ksmps</span> <span class="op">=</span>	32
<span class="ohdr">nchnls</span> <span class="op">=</span> 2
<span class="ohdr">0dbfs</span>  <span class="op">=</span> 1

<span class="oblock">instr</span> 1

katt	<span class="opc">expon</span> 0.01, p3, 1		<span class="comment">;create an attack</span>
aout	<span class="opc">poscil</span> .7, 440,1
	<span class="opc">MixerSetLevel</span>	1, 3, katt	<span class="comment">;impose attack on the gain level</span>
	<span class="opc">MixerSend</span> aout, 1, 3, 0		<span class="comment">;send to channel 0</span>
<span class="oblock">endin</span>

<span class="oblock">instr</span> 2

aout	<span class="opc">vco2</span> .5, 110			<span class="comment">;saw wave</span>
	<span class="opc">MixerSetLevel</span> 2, 3, .25		<span class="comment">;set level to .25 of vco2</span>
	<span class="opc">MixerSend</span> aout, 2, 3, 1		<span class="comment">;send to channel 1</span>
<span class="oblock">endin</span>

<span class="oblock">instr</span> 3	<span class="comment">;mix instr.1 and 2 with reverb</span>
	
kgain1	<span class="opc">MixerGetLevel</span>	1,3		<span class="comment">;get level form buss 3</span>
kgain2	<span class="opc">MixerGetLevel</span>	2,3		<span class="comment">;get level form buss 3</span>
a1	<span class="opc">MixerReceive</span>	3,0		<span class="comment">;receive channel 0</span>
a2	<span class="opc">MixerReceive</span>	3,1		<span class="comment">;receive channel 1</span>
aout	<span class="op">=</span> a1<span class="op">*</span>kgain1<span class="op">+</span>a2<span class="op">*</span>kgain2		<span class="comment">;mix them</span>
aoutL, aoutR <span class="opc">reverbsc</span> aout, aout,  0.85, 12000	<span class="comment">;add a nice reverb</span>
	<span class="opc">outs</span>  aoutL, aoutR
	<span class="opc">MixerClear</span>
<span class="oblock">endin</span>

<span class="csdtag">&lt;/CsInstruments&gt;</span>
<span class="csdtag">&lt;CsScore&gt;</span>
<span class="stamnt">f</span>1 0 4096 10 1

<span class="stamnt">i</span>1 0 2
<span class="stamnt">i</span>2 0 2
<span class="stamnt">i</span>3 0 8	<span class="comment">;reverb stays on for 8 sec.</span>

<span class="stamnt">e</span>
<span class="csdtag">&lt;/CsScore&gt;</span>
<span class="csdtag">&lt;/CsoundSynthesizer&gt;</span>
</pre>
          </div>
        </div>
        <p><br class="example-break" />
    </p>
      </div>
      <div class="refsect1">
        <a id="idp125674336"></a>
        <h2>Credits</h2>
        <p>Michael Gogins (gogins at pipeline dot com).</p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="mirror.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="OpcodesTop.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="MixerSetLevel_i.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">mirror </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> MixerSetLevel_i</td>
        </tr>
      </table>
    </div>
  </body>
</html>
